import '../lib/jquery.js';
import { ajax } from '../utils/ajax.js';
import { nameTest, pwdTest, nickTest } from "../utils/reg.js";

// 当表单提交时
$('form').on('submit', async function (e) {
    try {
        // 阻止默认行为
        e.preventDefault();

        // 获取表单值
        const username = $('.username').val().trim();
        const password = $('.password').val();
        const rpassword = $('.rpassword').val();
        const nickname = $('.nickname').val().trim();

        // 验证输入是否完整
        if (!username ||!password ||!rpassword ||!nickname) {
            showAlert('表单不能为空');
            return;
        }

        // 验证输入格式
        if (!nameTest(username)) {
            showAlert('用户名格式错误');
            return;
        }

        if (!pwdTest(password)) {
            showAlert('密码格式错误');
            return;
        }

        if (!nickTest(nickname)) {
            showAlert('昵称格式错误');
            return;
        }

        // 验证两次密码是否一致
        if (password!== rpassword) {
            showAlert('两次密码不一致');
            return;
        }

        // 发送的数据
        const data = { username, password, rpassword, nickname };

        // 发送注册请求
        const response = await ajax.post('/users/register', data);
        const { code } = response.data;

        // 注册失败
        if (code!== 1) {
            $('.error').css('display', 'block');
        } else {
            // 注册成功，跳转到登录页面
            showAlert('注册成功，点击确定跳转到登录页面', () => {
                location.href = './login.html';
            });
        }
    } catch (error) {
        console.error('注册请求失败:', error);
        showAlert('注册过程中出现错误，请稍后再试。');
    }
});

// 自定义的显示提示框函数，可进一步优化，例如使用模态框代替 alert
function showAlert(message, callback) {
    alert(message);
    if (callback) {
        callback();
    }
}